package com.qixiaobao.servicefee.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qixiaobao.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description 手续费 实体类
 * @Author yangxm
 * @Date 2025/6/24 14:09
 */
@Data
public class HandlingFee extends BaseEntity {


    private Long id;
    /**  供应商id */
    private Long supplyId;
    /**  供应商名称 */
    private String supplyName;
    /** 增员人数 */
    private Integer addNum;
    /** 减员人数 */
    private Integer minusNum;
    /** 结算人数 */
    private String settlePerson;
    /**  保费系数 */
    private BigDecimal insureFeeFactor;
    /** 奖励手续费费率 */
    private BigDecimal rewardHandlingFeeRate;
    /** 奖励手续费 */
    private BigDecimal rewardHandlingFeeTotal;
    /** 保险费总计 */
    private BigDecimal insureFeeTotal;
    /** 手续费总计 */
    private BigDecimal handlingFeeTotal;
    /** 手续费税率 */
    private BigDecimal handlingTaxRate;
    /** 手续费税后总计 */
    private BigDecimal rateHandlingFeeTotal;
    /**  经纪结算费率 */
    private BigDecimal brokerageSettleRatio;
    /**  手续费收款账户（字典） */
    private String receiptCompany;
    /** 手续费收款账户名称 */
    private String receiptCompanyVal;
    /** 手续费实收金额(公式：手续费税后总计*（1-经纪结算费率）) */
    private BigDecimal actualHandlingFeeTotal;
    /** 手续费周期 */
    private String handleFeeMonth;
    /** 手续费发票类型(0普票1专票2不开发票) */
    private String procedureFeeInvoiceType;
    /** 手续费发票类型(0普票1专票2不开发票) */
    private String procedureFeeInvoiceTypeVal;
    /** 手续费发票金额 (我司开具的发票，默认等于手续费实收金额，如不开票则为0)*/
    private BigDecimal handlingFeeInvoiceTotal;
    /** 手续费发票状态(0不开票1未开票2已开票) */
    private String handlingFeeInvoiceState;
    /** 手续费发票状态(0不开票1未开票2已开票) */
    private String handlingFeeInvoiceStateVal;
    /** 手续费状态（0待收款1已结算）*/
    private String handlingFeeStatus;
    /** 付款备注操作人 */
    private String remarkOperator;
    /** 付款备注操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date remarkTime;
    /** 财务实收状态（0否1是） */
    private String  financePayeeState;
    /** 财务实收状态（0否1是） */
    private String  financePayeeStateVal;
    /** 财务实收人 */
    private String  financePayeeName;
    /** 财务实收时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date financePayeeTime;
    /** 财务实收金额 */
    private BigDecimal financePayeeTotal;
    /** 收款凭证url */
    private String collectionProof;


    /** 费用ID集合 */
    private List<Long> chargeIdList;
    /**  供应商id集合 */
    private List<Long> supplyIdList;
}
